#==========================================================================================================================================
# Memory Map
#==========================================================================================================================================


0x0000 BIOS (4096 Bytes) (write to this section is disabled)
0x0FFF
-------
0x1000 CMOS (128 Bytes) (write to this section is only allowed in BIOS Mode)
    BootDisk: 0x0010
0x107F
-------
0x1080 INTERRUPT VECTOR (512 Bytes)
    Status: 1 Byte
        0xFF: Enabled
        0x00: Disabled
    Handler Address: 2 Byte
    ...Repeat...
0x127F
-------
0x1280 KEYBOARD MAPPING (224 Bytes) (write to this section is only allowed in BIOS Mode)
    0x00: Modifiers (2 bytes)
        0b00000000.00000001: Left Shift
        0b00000000.00000010: Left Ctrl
        0b00000000.00000100: Left Alt
        0b00000000.00001000: Left Super
        0b00000000.00010000: Right Shift
        0b00000000.00100000: Right Control
        0b00000000.01000000: Right Alt
        0b00000000.10000000: Right Super
        0b00000001.00000000: Caps Lock
        0b00000010.00000000: Num Lock
        0b00000100.00000000: Scroll Lock
    0x02: KeyCode (2 bytes)
0x135F
-------
0x1360 MOUSE MAPPING (32 Bytes)
0x137F
-------
0x1380 BOOTLOADER (512 Bytes)
0x157F
-------
0x1580 DISK INTERFACE (128 Bytes)
    Read/Write:
        Signal: 1 Byte
            0x00: Start Operation
            0x01: Cancel Current Operation
            0xFF: Ignore
        Mode: 1 Byte
            0x00: Read
            0x01: Write
        Disk: 1 Byte
        Sector: 2 Bytes
        Address: 2 Bytes
        DataSize: 2 Bytes
        DataAddress: 2 Byte
    ReadOnly:
        Status: 1 Byte
            0x00: Free
            0x01: Writing
            0x02: Reading
        CurrentDisk: 1 Byte
        CurrentSector: 2 Bytes
        CurrentAddress: 2 Bytes
        RestDataSize: 2 Bytes
        SourceData: 2 Bytes
    Free: 107 Byte
0x15FF
-------
0x1600 VIDEO CARD INTERFACE (256 Bytes)
    0x00:  Video Mode (1 Byte)
        0x00: Text Single Color
        # 0x01: Text 16-color
        # 0x02: Text 256-color
        # 0x03: Text True Color Mode
        # 0x04: GFX Single Color
        # 0x05: GFX 16-color
        # 0x06: GFX 256-color
        # 0x07: GFX True Color Mode
    # 0x01: Clear Color (1 Byte)
    # 0x02: Palette (1 Byte)
    0x03: Signal (1 Byte)
        0x00: Continue

        0x02: Text Single Color - Direct Print Character
        0x03: Text Single Color - Store character in buffer
        0x04: Text SIngle Color - Direct Print buffer & Flush Buffer
        0x05: Text Single Color - Flush Buffer
        0x06: Text Single Color - Print Buffer Without Flushing

        0xE0: Refresh Screen
        0xE1: Clear Screen
    0x04: Text Single Color Character
0x16FF
-------
0x1700 GENERIC SERIAL INTERFACE (64 Bytes)
0x173F
-------
0x1740 RAM (59583 Bytes)
0xFFFF



#==========================================================================================================================================
# INTERRUPTS
#==========================================================================================================================================




BIOS Specific - Software Interrupts:
====================================
0x20: BIOS Interrupt (Uses R10 register for specific functionality)
	0x00: Set Interrupt Handler
	0x01: Clear Interrupt Handler
	0x10: Disk Interface
0x30: BIOS Video Interrupt (Uses R10 register for specific functionality)
	0x01: Print Char in Text Single Mode (char stored in R9 register)
	0x02: New Line in Text Single Mode
	0x03: Print Null-Terminated String in Text Single Mode (string address stored in R9 register)
	0x04: Print Integer in Text Single Mode (integer stored in R9 register)
	0x05: Store Integer in buffer in Text Single Mode (integer stored in R9 register)
	0x06: Store character in buffer in Text Single Mode (integer stored in R9 register)
	0x07: Print buffer no flush in Text Single Mode
	0x08: Print buffer and flush in Text Single Mode
	0x09: Flush buffer in Text Single Mode
	0x0A: Store Null-Terminated String in buffer in Text Single Mode (string address stored in R9 register)

	0xE0: Refresh Screen
	0xE1: Clear Screen


Machine Specific - Hardware Interrupts:
=======================================
MAX INTERRUPT 0xAA
0x80: Disk Interface Finished
0xA0: Keyboard Interface - Key Pressed
0xA1: Keyboard Interface - Key Released
0xA2: Keyboard Interface - Text Entered